Certifying Compilation and Run-Time Code Generation

نویسندگان

  • Luke Hornof
  • Trevor Jim
چکیده

A certifying compiler takes a source language program and produces object code as well as a certi cate that can be used to verify that the object code satis es desirable prop erties such as type safety and memory safety Certifying compilation helps to increase both compiler robustness and program safety Compiler robustness is improved since some compiler errors can be caught by checking the object code against the certi cate immediately after compilation Pro gram safety is improved because the object code and certi cate alone are su cient to establish safety even if the object code and certi cate are produced on an unknown machine by an unknown compiler and sent over an untrusted net work safe execution is guaranteed as long as the code and certi cate pass the veri er Existing work in certifying compilation has addressed statically generated code In this paper we extend this to code generated at run time Our goal is to combine certi fying compilation with run time code generation to produce programs that are both veri ably safe and extremely fast To achieve this goal we present two new languages with ex plicit run time code generation constructs Cyclone a type safe dialect of C and TAL T a type safe assembly language We have designed and implemented a system that translates a safe C program into Cyclone which is then compiled to TAL T and nally assembled into executable object code This paper focuses on our overall approach and the front end of our system details about TAL T will appear in a subsequent paper

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

On Certifying Code Generation

Guaranteeing correctness of compilation is a major precondition for correct software. Code generation can be one of the most errorprone tasks in a compiler. One way to achieve trusted compilation is certifying compilation. A certifying compiler generates for each run a proof that it has performed the compilation run correctly. The proof is checked in a separate theorem prover. If the theorem pr...

متن کامل

A Certifying Code Generation Phase

Guaranteeing correctness of compilation is a vital precondition for correct software. Code generation can be one of the most error-prone tasks in a compiler. One way to achieve trusted compilation is certifying compilation. A certifying compiler generates for each run a proof that it has performed the compilation run correctly. The proof is checked in a separate theorem prover. If the theorem p...

متن کامل

Certifying Code Generation Runs with Coq: A Tool Description

In this tool description paper we present a certifying code generation phase. Our code generation phase takes intermediate language programs and translates them into MIPS assembler code. Each time our code generation is invoked a proof script is emitted. This proof script is used as a certificate to guarantee the correctness of the code generation run. It is checked in the Coq theorem prover. O...

متن کامل

Deferred Compilation: The Automation of Run-Time Code Generation

This paper describes deferred compilation, an alternative and complement to compile-time program analysis and optimization. By deferring aspects of compilation to run time, exact information about programs can be exploited, leading to greater opportunities for code improvement. This is in contrast to the use of static analyses, which are inherently conservative. Deferred compilation automates t...

متن کامل

Controlling run time compilation

This paper describes a technique for integrating run time compilation which is e ectively pause free and for which the worst case impact can be bounded Three extensions to a JVM implementation are used Firstly a new scheduler allows the allocation of CPU time to threads to be controlled Secondly a code generator provides a mechanism for run time compilation Finally a control interface allow app...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:
  • Higher-Order and Symbolic Computation

دوره 12  شماره 

صفحات  -

تاریخ انتشار 1999